home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / network / helldivr.zip / HSEND.DOC < prev    next >
Text File  |  1992-08-16  |  15KB  |  334 lines

  1.             Helldiver Send Mail/News Interface
  2.  
  3.                    Version 1.03
  4.  
  5.               Copyright (C) 1991-1992 Rhys Weatherley
  6.  
  7. 1. INTRODUCTION.
  8.  
  9. This document describes how to use the Helldiver Send program HSEND.EXE to
  10. send mail and news under Waffle.  The Helldiver Newsreader executes this DOS
  11. program as its final mailing and posting stage.  In effect, Helldiver Send
  12. provides an abstract interface for sending mail and news that is independent
  13. of any particluar news/mail system.  It is intended that other similar programs
  14. will be written in the future by myself or others for other UUCP systems.
  15. Normally the user of a mailer or newsreader would not need to use HSEND.EXE
  16. directly - the mailer or newsreader would invoke HSEND.EXE itself.
  17.  
  18. Currently Helldiver Send supports Waffle 1.64 and 1.65.
  19.  
  20. Because this program could prove useful to other people's projects, HSEND.EXE
  21. may be distributed free of charge with your own programs as long as either
  22. this documentation file is included verbatim, or the following copyright and
  23. warranty message pertaining to Helldiver Send is included in your own
  24. documentation:
  25.  
  26. -------------------------------------------------------------------------------
  27. Helldiver Send, Copyright (C) 1991-1992 Rhys Weatherley, rhys@cs.uq.oz.au
  28.  
  29. Permission to use, copy, and distribute this material for any purpose
  30. and without fee is hereby granted, provided that the above copyright notice
  31. and this permission notice appear in all copies, and that the name of Rhys
  32. Weatherley not be used in advertising or publicity pertaining to this material
  33. without specific, prior written permission.  RHYS WEATHERLEY MAKES NO
  34. REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY OF THIS MATERIAL FOR ANY
  35. PURPOSE.  IT IS PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
  36. -------------------------------------------------------------------------------
  37.  
  38. Please contact me via e-mail at rhys@cs.uq.oz.au if you have any further
  39. queries about Helldiver Send, or would like the latest version.
  40.  
  41. Other people are welcome to write Helldiver Send clones conforming to this
  42. specification for Waffle, or for other mail/news packages.  Please contact me
  43. if you wish to extend this specification in any way so everyone's programs can
  44. keep the same interface.  To be conformant to this specification, both the
  45. command-line and control file formats described below must be adhered to.
  46.  
  47. 2. COMMAND-LINE USAGE.
  48.  
  49. Helldiver Send has the following two command-line usage alternatives:
  50.  
  51.     hsend (filename|-) command
  52.     hsend control-file
  53.  
  54. In the first case, the filename specified in the first argument (standard
  55. input if "-") is fed to the command specified by the remaining arguments as
  56. standard input.  Usually the command has one of the forms:
  57.  
  58.     rmail addresss ...
  59.     rnews
  60.  
  61. This usage requires that the message be fully formatted already, complete
  62. with From:, Message-Id: lines, etc.  It is not recommended that new programs
  63. calling Helldiver Send use this option.  It is provided exclusively for
  64. backwards-compatibilty with an earlier version of Helldiver Send that had a
  65. limited audience.  The current version runs Waffle's RMAIL.EXE or RNEWS.EXE
  66. programs which must be on the PATH.  Conformant implementations may interpret
  67. "rmail" and "rnews" (in either case) as invoking the local mail and news
  68. transmission facilities, whatever they may be.
  69.  
  70. The second usage above is the recommended usage for all callers of Helldiver
  71. Send and conformant clones.  The single argument specifies a control file
  72. containing commands telling Helldiver Send how to transmit a mail or news
  73. message.  The next section describes the legal commands.  An extensive,
  74. albeit atypical, example control file follows:
  75.  
  76.     File: f:\waffle\temp\msgaaba.tmp
  77.     From: rhys
  78.     From-name: Rhys Weatherley
  79.     Newsgroups: news.groups,news.admin
  80.     Mod-newsgroup: comp.archives mod@machine.domain.edu
  81.     Mod-newsgroup: comp.risks mod@risks.domain.edu
  82.     Local-newsgroup: 0.admin d:\news\local\0\admin
  83.     Local-newsgroup: 0.talk d:\news\local\0\talk
  84.     Followup-To: news.groups,news.admin
  85.     Followup-To-local: 0.talk
  86.     To: peter
  87.     Cc: paul
  88.     Cc: mary
  89.     Bcc: rhys
  90.     X-Mailer: Helldiver 1.04 (Waffle 1.64)
  91.     Append: f:\waffle\user\rhys\outbox
  92.     Sig: f:\waffle\user\rhys\sig
  93.     Lines: 40
  94.     Ref-groups: news.groups,news.admin,comp.archives,comp.risks
  95.     Distribution: aus
  96.     Dead-letters: f:\waffle\user\rhys\dead
  97.     Software: Waffle 1.64
  98.     Approved-for: john@nowhere.com (John Citizen)
  99.     Expires: 76757576
  100.     Control: cancel <.....>
  101.     Ignore: Newsgroup
  102.     Ignore: Crossposted-To
  103.     Ignore: Follow
  104.     Tempdir: f:\waffle\temp
  105.     Delete: no
  106.     Delete-control: no
  107.     Subject: PROGRAM.ZIP - a little useless program (Part 02/05)
  108.     Reply-To: rhys@cs.uq.oz.au
  109.  
  110. 3. CONTROL FILE COMMANDS.
  111.  
  112. This section describes the commands that may be specified in a control file.
  113. The ordering of command lines is not important.  More than one message can
  114. be specified in the same control file by separating the relevant sections with
  115. a line containing a single "-" character.  Unknown commands are ignored.
  116.  
  117. The meaning of each section is as follows: if there is a "To:", "Cc:" or "Bcc:"
  118. line, then a mail message is sent.  If there is a "Newsgroups" line, then a
  119. news message is posted.  If there is a "Local-newsgroup" line is specified,
  120. then a message is posted to a local newsgroup.  If there is a "Mod-newsgroup"
  121. line, then a mail message is sent for a moderated newsgroup.  Each of the
  122. above may be mixed to send more than one message at once.  Helldiver Send
  123. avoids sending the final messages with a mixture of normal, local and
  124. moderated groups.  In particular, a final message posted to a normal
  125. newsgroup doesn't contain any local or moderated newsgroup names, and a
  126. final message posted to a moderated newsgroup must not contain any other
  127. newsgroup names, including other moderated groups.
  128.  
  129. It is unclear as to whether Helldiver Send's behaviour with a mixture of
  130. normal, local, and moderated groups is consistent with current USENET
  131. practice in all cases.  This may change in future versions, but conformant
  132. implementations must still understand the "Newsgroups", "Local-newsgroup"
  133. and "Mod-newsgroup" control file commands.
  134.  
  135. If an RFC-822 or RFC-1036 compliant header line is specified below, then it
  136. should be removed from the original message file before copying the message
  137. file to the final message.  The input message file specified by the "File:"
  138. command must consist of zero or more header lines, followed by a blank line
  139. and the body of the message.  If a header is implicitly specified by one of
  140. the commands below, it doesn't need to be included in the original message,
  141. though it can be: it will just be ignored.
  142.  
  143. Append:
  144.     If present, this command specifies a file to append the initial message
  145.     (specified by "File:") to.  This is useful if a user has requested that
  146.     all their messages be saved in a file before transmission.
  147.  
  148. Approved-for:
  149.     If present, this command tells Helldiver Send to use the argument as
  150.     the "From:" line for the final message, and to use the "From:" command
  151.     as the user-id for the user approving the message, and the "Sender:"
  152.     name.  The "Approved:" line always has the form "user@host" where
  153.     "host" is derived externally to Helldiver Send (in the case of Waffle,
  154.     it is specified in the STATIC file).  This is a semi-security measure
  155.     to ensure that e-mail names of user's on a different site may not be
  156.     inserted into the "Approved:" line.  Helldiver Send automatically
  157.     removes any "Approved:" lines in the original message file to prevent
  158.     bypassing this security feature.
  159.  
  160. Bcc:
  161.     Specify the e-mail address of a blind carbon-copy recipient of a
  162.     mail message.  Only one recipient may be specified on the line,
  163.     but more than one "Bcc:" line may be given.
  164.  
  165. Cc:
  166.     Specify the e-mail address of a carbon-copy recipient of a mail
  167.     message.  Only one recipient may be specified on the line, but
  168.     more than one "Cc:" line may be given.
  169.  
  170. Control:
  171.     The text of the "Control:" line in the final message.  Note that
  172.     supporting this command can be a _big_ USENET security risk.  It is
  173.     recommended that friendly front-end user interfaces not use this
  174.     command, except maybe for the cancellation of a user's articles.
  175.     Conformant Helldiver Send clones may wish to inhibit this command
  176.     or restrict the control messages that can be generated using it.
  177.     Ultimately it is not possible to stop a system administrator
  178.     generating bogus control messages by directly talking to RNEWS,
  179.     but other users should be restricted from its use.
  180.  
  181. Dead-letters:
  182.     The name of a file to append messages to that could not be delivered
  183.     for any reason.  The Helldiver Newsreader uses the file "DEAD" in the
  184.     user's home directory for this purpose.  If this command is not
  185.     present, dead letters are merely discarded.
  186.  
  187. Delete:
  188.     If present, it indicates if the message file specified by "File:"
  189.     should NOT be deleted after message delivery.  The default is to
  190.     delete the file.  The argument should be "no" in lower case for
  191.     upwards compatibility with future Helldiver Send versions.  Currently
  192.     the argument is ignored, and file is deleted if this command is
  193.     not present.
  194.  
  195. Delete-control:
  196.     Similar to "Delete:", but indicates if the control file should be
  197.     deleted after delivering all messages.  This command must occur in
  198.     the first section if there is more than one separated by "-" lines.
  199.     It is recommended that callers of Helldiver Send not specify "Delete"
  200.     or "Delete-control" but arrange for temporary files to be used for
  201.     both the message and control files.  Thus, a single call on Helldiver
  202.     Send can stand-alone, with the calling program not needing to do
  203.     any clean-up afterwards.  This is important in environments like
  204.     Microsoft Windows where it is difficult to detect when a child process
  205.     (like running Helldiver Send to send a message) has terminated and
  206.     clean up the temporary files in the parent: all clean-ups are done
  207.     in Helldiver Send itself.
  208.  
  209. Distribution:
  210.     A comma-separated list of USENET distributions to place into the
  211.     final message's "Distribution:" line.
  212.  
  213. Expires:
  214.     An expiry date in Unix datetime format (i.e. the number of seconds
  215.     since 1 Jan 1970).
  216.  
  217. File:
  218.     Specifies the name of the file containing the message.  The header is
  219.     separated from the body by a single blank line.  The header may
  220.     contain some header fields that are automatically generated by other
  221.     control file commands, which are ignored when the final message is
  222.     generated.
  223.  
  224. Followup-To:
  225.     Specifies a comma-separated list of newsgroups to enter into the
  226.     final message's "Followup-To:" line.
  227.  
  228. Followup-To-local:
  229.     Specifies a comma-separated list of local newsgroups to enter into
  230.     the "Followup-To:" line (in addition to any "Followup-To" groups) for
  231.     messages posted to local newsgroups.
  232.  
  233. From:
  234.     Specify the user-id of the user the message is from.  If the
  235.     "Approved-for:" line is also present, this specifies the user-id of
  236.     the user approving the message and "Approved-for:" gives the text
  237.     of the final message's "From:" line.
  238.  
  239. From-name:
  240.     Real name of the user to be inserted into the "From:" line of the
  241.     final message.  The final "From:" line will have the form
  242.     "user@host (real name)" or "real name <user@host>" depending on
  243.     the implementation.  Helldiver Send uses the first form.  Note that
  244.     the supplied real name may contain unmatched parentheses or angle
  245.     brackets, so a conformant implementation should drop or re-match
  246.     unmatched pairs.  Matched pairs should still be copied to the
  247.     final message though.
  248.  
  249. Ignore:
  250.     The name of a header field to ignore when generating the final
  251.     message.  i.e. if the header field appears in the original message
  252.     file, then that line will be removed.
  253.  
  254. Lines:
  255.     Number of lines in the body of the message.  If this command is not
  256.     present, then no "Lines:" header is inserted into the final message.
  257.     Note the comments for the "Sig:" command when using this command.
  258.  
  259. Local-newsgroup:
  260.     Name of a local newsgroup and the corresponding spool directory.  It
  261.     is assumed that the article is to be stored into the directory as a
  262.     numbered file, and no other processing is required.  On some systems,
  263.     "Newsgroups:" could be used instead of "Local-newsgroup:".  This
  264.     is possible under Waffle, but since RNEWS.EXE is executed, then the
  265.     FEEDS file must be edited to stop local newsgroups being fed to other
  266.     sites.  Note that no checking is done to see if local newsgroups in
  267.     Waffle have overflowed the "/keep" setting.
  268.  
  269. Mailer-ident:
  270.     A short string of characters that can be inserted into the final
  271.     message's "Message-Id:" field if the program desires to.  The default
  272.     string is an empty string.  For example, the Helldiver Newsreader
  273.     sets this command to "hxyyh" where "x.yy" is the current newsreader
  274.     version, so that Message-Id's have the form "<ABCDEFhxyyh@host>".
  275.     Use of this command can help isolate software versions that generate
  276.     invalid news and mail messages by inspecting the Message-Id.  It is
  277.     not necessary that all conformant implementations use this command.
  278.  
  279. Mod-newsgroup:
  280.     Name of a moderated newsgroup and the e-mail address to send the
  281.     posting to.
  282.  
  283. Newsgroups:
  284.     A comma-separated list of newsgroups to post the message to.
  285.  
  286. Ref-groups:
  287.     If present, then the text of this line is output as the "Newsgroups:"
  288.     line in any mail messages.  It is intended to be used for replies to
  289.     news postings so that the newsgroups appear in the final reply.
  290.  
  291. Reply-To:
  292.     A fully qualified e-mail address to be inserted into the "Reply-To:"
  293.     line of the final message.
  294.  
  295. Sig:
  296.     If present, specifies the name of a file to be appended to the final
  297.     message as the user's signature.  Note that if the "Lines:" option
  298.     is also present, then the lines of the signature may not be included
  299.     in the final count, so it is usually better to append the signature
  300.     in the originating program if a "Lines:" header is desired.
  301.  
  302. Software:
  303.     The name of the software to use for mailing or posting the final
  304.     messages.  At present, Helldiver Send recognises "Waffle 1.64" and
  305.     "Waffle 1.65" in this command as indicating that Waffle 1.64 (or 1.65)
  306.     should be used for sending mail and news.  Contact rhys@cs.uq.oz.au
  307.     for details on other identifiers, and for registering your own
  308.     identifiers.  If "Software:" is not recognised, then the program
  309.     can either ignore or continue to process the message - this behaviour
  310.     is not defined by this specification.
  311.  
  312. Subject:
  313.     If present, then it indicates a new subject to be used to replace the
  314.     subject in the original message.  This is convenient for indicating
  315.     the part number for multi-part messages by overriding the user's
  316.     entered subject for each of the parts.
  317.  
  318. Tempdir:
  319.     This command is mandatory and specifies a directory that temporary
  320.     files can be created in.
  321.  
  322. To:
  323.     Specify the e-mail address of a recipient of a mail message.  Only
  324.     one recipient may be specified on the line, but more than one "To:"
  325.     line may be given.
  326.  
  327. X-Mailer:
  328.  
  329.     An optional comment line.  The contents of this line are copied into
  330.     an "X-Mailer:" line in the final message.  Usually this is the name
  331.     and version of the program calling Helldiver Send.
  332.  
  333. Please contact the author at rhys@cs.uq.oz.au if you have any further queries.
  334.